package com.yic.module.mes.dal.dataobject.report;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yic.framework.mybatis.core.dataobject.BaseDO;

import javax.validation.constraints.NotNull;

/**
 * 生产报工 DO
 *
 * @author 系统管理员
 */
@TableName("mes_report")
@KeySequence("mes_report_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReportDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 生产排产ID
     */
    private Long moId;
    /**
     * 生产工单
     */
    private String moCode;
    /**
     * 生产计划ID
     */
    private Long planId;
    /**
     * 计划工单
     */
    private String planCode;
    /**
     * 批次号
     */
    private String batchNo;
    /**
     * 产品信息
     */
    private Long itemId;
    /**
     * 产品生产信息
     */
    private Long itemProduceId;
    /**
     * 工厂
     */
    private Long factoryId;
    /**
     * 生产车间
     */
    private Long workshopId;
    /**
     * 工作中心
     */
    private Long centerId;
    /**
     * 部门
     */
    private Long deptId;
    /**
     * 报工人
     */
    private Long userId;
    /**
     * 协作人
     */
    private String cooperate;
    /**
     * 报工工序
     */
    private Long moRouteId;
    /**
     * 报工工序
     */
    private Long processId;
    /**
     * 最后一道工序
     */
    private Integer lastProcess;
    /**
     * 报工数量
     */
    private BigDecimal reportAmount;
    /**
     * 流水号
     */
    private String serialNo;
    /**
     * 审批时间
     */
    private LocalDateTime approveTime;
    /**
     * 审批人
     */
    private Long approveUser;
    /**
     * 审核状态
     *
     * 枚举 {@link TODO system_approve 对应的类}
     */
    private Integer approve;
    /**
     * erp完工入库标识
     */
    private Long erpProduceInId;

}
